package com.qf.service.Impl;

import com.alibaba.druid.util.StringUtils;
import com.qf.dao.GoodsTypeDao;
import com.qf.dao.impl.GoodsTypeDaoImpl;
import com.qf.pojo.TbGoodsType;
import com.qf.service.GoodsTypeService;
import com.qf.utils.DBUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import java.sql.SQLException;
import java.util.List;

@Service
public class GoodsTypeServiceImpl implements GoodsTypeService {
    @Autowired
    GoodsTypeDao goodsTypeDao;

    @Override
    public List<TbGoodsType> findAllSecondLevelType() throws SQLException {
        List<TbGoodsType> allSecondLevelType = goodsTypeDao.findAllSecondLevelType();
        DBUtils.close();
        return allSecondLevelType;
    }

    @Override
    public void addType(String name, String parent) throws Exception {
        if (StringUtils.isEmpty(name) || StringUtils.isEmpty(parent)) {
            throw new RuntimeException();
        }
        goodsTypeDao.addType(name, parent);

    }

    @Override
    public int deleteType(String id) {
        //删除分类,但是分类会有子分类,所以我们需要确定删除父分类的时候需要怎么办
        //比如如果还有正常的子类,则不允许删除
        //或者删除的时候顺便删除所有的子类
        //此处我们选择不允许删除
        //1 先查询有没有正常的子分类
        List<TbGoodsType> ids = findTypeByPIdAndStaus(id, 1);
        if (ids == null || ids.size() == 0) {
            //代表没有数据,可以删除
            return goodsTypeDao.deleteType(id);
        }
        DBUtils.close();
        return -1;// -1代表不允许删除
    }

    @Override
    public List<TbGoodsType> findTypeByPIdAndStaus(String pid, int status) {
        DBUtils.close();
        return goodsTypeDao.findIdByPIdAndStaus(pid, status);
    }
}
